package com.zm.Study09_BufferedRedaer;

import java.io.*;

public class BufferedReaderDemo01 {

   // InputStreamReader isr=new InputStreamReader(new FileInputStream("D:\\project\\IDEAPROJECT\\JavaIO\\src\\main\\resources\\static\\BufferedReader_Writer\\reader.txt"));
   // BufferedReader br=new BufferedReader(isr);
    //但既然我们已经学过了FileReader了所以：
    BufferedReader br=new BufferedReader(new FileReader("D:\\project\\IDEAPROJECT\\JavaIO\\src\\main\\resources\\static\\BufferedReader_Writer\\reader.txt"));

    public BufferedReaderDemo01() throws IOException {

    }

    /**
     * 字符缓冲流的特有功能
     * readLine（）  读取一行，但只是文字内容，不包括任何行终止符，如果流的结尾已到达，返回null
     * @param args
     * @throws IOException
     */
    public static void main(String[] args) throws IOException {
        BufferedReaderDemo01 bufferedReaderDemo01=new BufferedReaderDemo01();
      //  bufferedReaderDemo01.oneChar();
      //  bufferedReaderDemo01.charList();
        bufferedReaderDemo01.readLineTest();
    }

    public void oneChar() throws IOException {
        int ch;
        while ((ch=br.read())!=-1){
            System.out.print((char)ch);
        }
        br.close();
      //  isr.close();
    }
    public void charList() throws IOException {
        int len;
        char[] chars=new char[1024];

        while ((len=br.read(chars))!=-1){
            System.out.print(new String(chars,0,len));
        }
        br.close();
       // isr.close();
    }

    //所有数据都在一行上，所以在复制文件的时候需要配合BufferedWriter.newLine（）使用
    //此处是在控制台输出可以在sout的println的换行，所以没有出错，但是在copy文件写入的时候就没有这种东西了
    //例子见Study11
    public void readLineTest() throws IOException {
        String str;
        while ((str=br.readLine())!=null){
            System.out.println(str);
        }
        br.close();
    }
}
